#include "cutlass/layout/layout.h"
#include "cutlass/cutlass.h"
#include "cutlass/util/host_tensor.h"

#include <iostream>

int main(int argc, char* argv[])
{
    using layout = cutlass::layout::TensorNHWC;
    using Tensor = cutlass::HostTensor<float, layout>;
    using TensorCoord = Tensor::TensorCoord;

    TensorCoord coord = cutlass::make_Coord(2, 2, 3, 4);

    Tensor A(coord);
    std::cout << A.kRank << std::endl;    
    std::cout << "size: " << A.size() << std::endl;

   

    std::cout << "device data: " << A.device_data() << std::endl;

    std::cout << "device_backed: " << A.device_backed() << std::endl;

    A.sync_device();
    std::cout << "device data after sync: " << A.device_data() << std::endl;



    A.reset();
    std::cout << "size after reset: " << A.size() << std::endl;
    return 0;
}